/*!
 *
 * This program is free software; you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
 * Foundation.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
 * or from the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 *
 * Copyright (c) 2002-2018 Hitachi Vantara. All rights reserved.
 *
 */

//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2013.07.25 at 11:25:28 AM EDT 
//

package org.pentaho.platform.plugin.services.importexport.exportManifest.bindings;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * Java class for EntityAcl complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="EntityAcl">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="aces" maxOccurs="unbounded">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="permissions" maxOccurs="unbounded" minOccurs="0">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;enumeration value="READ"/>
 *                         &lt;enumeration value="WRITE"/>
 *                         &lt;enumeration value="READ_ACL"/>
 *                         &lt;enumeration value="WRITE_ACL"/>
 *                         &lt;enumeration value="ALL"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="recipient" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="recipientType" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="entriesInheriting" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *         &lt;element name="owner" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="ownerType">
 *           &lt;simpleType>
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               &lt;enumeration value="USER"/>
 *               &lt;enumeration value="ROLE"/>
 *             &lt;/restriction>
 *           &lt;/simpleType>
 *         &lt;/element>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "EntityAcl", propOrder = { "aces", "entriesInheriting", "owner", "ownerType" } )
public class EntityAcl {

  @XmlElement( required = true )
  protected List<EntityAcl.Aces> aces;
  protected boolean entriesInheriting;
  @XmlElement( required = true )
  protected String owner;
  @XmlElement( required = true )
  protected String ownerType;

  /**
   * Gets the value of the aces property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to
   * the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for
   * the aces property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getAces().add( newItem );
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list {@link EntityAcl.Aces }
   * 
   * 
   */
  public List<EntityAcl.Aces> getAces() {
    if ( aces == null ) {
      aces = new ArrayList<EntityAcl.Aces>();
    }
    return this.aces;
  }

  /**
   * Gets the value of the entriesInheriting property.
   * 
   */
  public boolean isEntriesInheriting() {
    return entriesInheriting;
  }

  /**
   * Sets the value of the entriesInheriting property.
   * 
   */
  public void setEntriesInheriting( boolean value ) {
    this.entriesInheriting = value;
  }

  /**
   * Gets the value of the owner property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getOwner() {
    return owner;
  }

  /**
   * Sets the value of the owner property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setOwner( String value ) {
    this.owner = value;
  }

  /**
   * Gets the value of the ownerType property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getOwnerType() {
    return ownerType;
  }

  /**
   * Sets the value of the ownerType property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setOwnerType( String value ) {
    this.ownerType = value;
  }

  /**
   * <p>
   * Java class for anonymous complex type.
   * 
   * <p>
   * The following schema fragment specifies the expected content contained within this class.
   * 
   * <pre>
   * &lt;complexType>
   *   &lt;complexContent>
   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *       &lt;sequence>
   *         &lt;element name="permissions" maxOccurs="unbounded" minOccurs="0">
   *           &lt;simpleType>
   *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
   *               &lt;enumeration value="READ"/>
   *               &lt;enumeration value="WRITE"/>
   *               &lt;enumeration value="READ_ACL"/>
   *               &lt;enumeration value="WRITE_ACL"/>
   *               &lt;enumeration value="ALL"/>
   *             &lt;/restriction>
   *           &lt;/simpleType>
   *         &lt;/element>
   *         &lt;element name="recipient" type="{http://www.w3.org/2001/XMLSchema}string"/>
   *         &lt;element name="recipientType" type="{http://www.w3.org/2001/XMLSchema}string"/>
   *       &lt;/sequence>
   *     &lt;/restriction>
   *   &lt;/complexContent>
   * &lt;/complexType>
   * </pre>
   * 
   * 
   */
  @XmlAccessorType( XmlAccessType.FIELD )
  @XmlType( name = "", propOrder = { "permissions", "recipient", "recipientType" } )
  public static class Aces {

    protected List<String> permissions;
    @XmlElement( required = true )
    protected String recipient;
    @XmlElement( required = true )
    protected String recipientType;

    /**
     * Gets the value of the permissions property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to
     * the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for
     * the permissions property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getPermissions().add( newItem );
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list {@link String }
     * 
     * 
     */
    public List<String> getPermissions() {
      if ( permissions == null ) {
        permissions = new ArrayList<String>();
      }
      return this.permissions;
    }

    /**
     * Gets the value of the recipient property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getRecipient() {
      return recipient;
    }

    /**
     * Sets the value of the recipient property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setRecipient( String value ) {
      this.recipient = value;
    }

    /**
     * Gets the value of the recipientType property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getRecipientType() {
      return recipientType;
    }

    /**
     * Sets the value of the recipientType property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setRecipientType( String value ) {
      this.recipientType = value;
    }

  }

}
